/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.ares.service.action;

import com.ares.service.actionform.AdministradorActionForm;
import com.ares.service.bean.BeanCentroCosto;
import com.ares.service.bean.BeanDivisionPersonal;
import com.ares.service.bean.BeanEvaluado;
import com.ares.service.bean.BeanEvaluador;
import com.ares.service.bean.BeanPeriodoReporte;
import com.ares.service.bean.BeanReporte;
import com.ares.service.bean.BeanReporteCalificaciones;
import com.ares.service.bean.BeanSociedad;
import com.ares.service.bean.BeanSubDivisionPersonal;
import com.ares.service.bean.BeanTipoPuesto;
import com.ares.service.bean.BeanUnidadOrganizativa;
import com.ares.service.servicio.AdministradorSapService_I;
import com.ares.service.servicio.PaqueteBusinessDelegate;
import com.ares.service.util.Constantes;
import com.ares.service.util.Util;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;


/*
 *
 *@author electro
 * 
 */
public class AdministradorAction extends DispatchAction {
    AdministradorSapService_I administradorService = PaqueteBusinessDelegate.getAdministradorSapService_I();

    public ActionForward IrMenuAdministrador(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        if (Util.isSessionActiva(request)) {
            return mapping.findForward(Constantes.LOGIN);
        }
        return mapping .findForward("menuAdministrador");
    }

    public ActionForward mostrarStatus(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        if (Util.isSessionActiva(request)) {
            return mapping.findForward(Constantes.LOGIN);
        }
        //Muestro al momento de cargar la lista de Sociedades
        List<BeanSociedad> lstSociedades = new ArrayList<BeanSociedad>();
        lstSociedades = administradorService.getSociedades();

        //Muestro al momento de cargar la lista de Unidades Organizativas
        List<BeanUnidadOrganizativa> lstUnidadesOrganizativas = new ArrayList<BeanUnidadOrganizativa>();
        lstUnidadesOrganizativas = administradorService.getUnidadOrganizativa();

        //Muestro al momento de cargar la lista de Division de Personal, con el idSociedad igual al de Ares (1013),
        List<BeanDivisionPersonal> lstDivisionPersonal = new ArrayList<BeanDivisionPersonal>();
        lstDivisionPersonal = administradorService.getDivisionPersonal(lstSociedades.get(0).getIdSociedad());

        //Muestro al momento de cargar la lista de Centros de Costo
        List<BeanCentroCosto> lstCentroCostos = new ArrayList<BeanCentroCosto>();
        lstCentroCostos = administradorService.getCentroCostos();

        //Muestro al momento de cargar la lista de Periodos
        List<BeanPeriodoReporte> lstPeriodoReporte = new ArrayList<BeanPeriodoReporte>();
        lstPeriodoReporte = administradorService.getPeriodos();

        //Muestro al momento de cargar la lista de Evaluadores
        List<BeanEvaluador> lstEvaluadores = new ArrayList<BeanEvaluador>();
        //le paso el periodo vacio para que traiga todos los evaluadores
        lstEvaluadores = administradorService.getEvaluadores("");

        //Muestro al momento de cargar la lista de Evaluados
        List<BeanEvaluado> lstEvaluados = new ArrayList<BeanEvaluado>();
        //le paso el periodo vacio para que traiga todos los evaluadores
        lstEvaluados = administradorService.getEvaluados("");

//        alex
        //MuestroTipoPuesto
        	List<BeanTipoPuesto> lstTipoPuesto = new ArrayList<BeanTipoPuesto>();
        	lstTipoPuesto = administradorService.getTipoPuesto();
        	request.setAttribute("lstTipoPuesto", lstTipoPuesto);
//        Fin alex
        	
        request.setAttribute("lstSociedades", lstSociedades);
        request.setAttribute("lstUnidadesOrganizativas", lstUnidadesOrganizativas);
        request.setAttribute("lstDivisionPersonal", lstDivisionPersonal);
        request.setAttribute("lstCentroCostos", lstCentroCostos);
        request.setAttribute("lstPeriodos", lstPeriodoReporte);
        request.setAttribute("lstEvaluadores", lstEvaluadores);
        request.setAttribute("lstEvaluados", lstEvaluados);
        
        
        return mapping.findForward("reporteStatus");
    }

    public ActionForward mostrarCalificaciones(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        if (Util.isSessionActiva(request)) {
            return mapping.findForward(Constantes.LOGIN);
        }
        
        //Muestro al momento de cargar la lista de Sociedades
        List<BeanSociedad> lstSociedades = new ArrayList<BeanSociedad>();
        lstSociedades = administradorService.getSociedades();

        //Muestro al momento de cargar la lista de Unidades Organizativas
        List<BeanUnidadOrganizativa> lstUnidadesOrganizativas = new ArrayList<BeanUnidadOrganizativa>();
        lstUnidadesOrganizativas = administradorService.getUnidadOrganizativa();

        //Muestro al momento de cargar la lista de Division de Personal, con el idSociedad igual al de Ares (1013),
        List<BeanDivisionPersonal> lstDivisionPersonal = new ArrayList<BeanDivisionPersonal>();
        lstDivisionPersonal = administradorService.getDivisionPersonal(lstSociedades.get(0).getIdSociedad());

        //Muestro al momento de cargar la lista de Centros de Costo
        List<BeanCentroCosto> lstCentroCostos = new ArrayList<BeanCentroCosto>();
        lstCentroCostos = administradorService.getCentroCostos();

        //Muestro al momento de cargar la lista de Periodos
        List<BeanPeriodoReporte> lstPeriodoReporte = new ArrayList<BeanPeriodoReporte>();
        lstPeriodoReporte = administradorService.getPeriodos();

        //Muestro al momento de cargar la lista de Evaluadores
        List<BeanEvaluador> lstEvaluadores = new ArrayList<BeanEvaluador>();
        //le paso el periodo vacio para que traiga todos los evaluadores
        lstEvaluadores = administradorService.getEvaluadores("");

        //Muestro al momento de cargar la lista de Evaluados
        List<BeanEvaluado> lstEvaluados = new ArrayList<BeanEvaluado>();
        //le paso el periodo vacio para que traiga todos los evaluados
        lstEvaluados = administradorService.getEvaluados("");

//      alex
        //MuestroTipoPuesto
        	List<BeanTipoPuesto> lstTipoPuesto = new ArrayList<BeanTipoPuesto>();
        	lstTipoPuesto = administradorService.getTipoPuesto();
        	request.setAttribute("lstTipoPuesto", lstTipoPuesto);
//        Fin alex
        	
        request.setAttribute("lstSociedades", lstSociedades);
        request.setAttribute("lstUnidadesOrganizativas", lstUnidadesOrganizativas);
        request.setAttribute("lstDivisionPersonal", lstDivisionPersonal);
        request.setAttribute("lstCentroCostos", lstCentroCostos);
        request.setAttribute("lstPeriodos", lstPeriodoReporte);
        request.setAttribute("lstEvaluadores", lstEvaluadores);
        request.setAttribute("lstEvaluados", lstEvaluados);

        return mapping.findForward("reporteCalificaciones");
    }

    // muestra el resultado de la busqueda para el reporte de Status
    public ActionForward buscarRegistroStatus(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        if (Util.isSessionActiva(request)) {
            return mapping.findForward(Constantes.LOGIN);
        }

       
		
        AdministradorActionForm administradorActionForm = new AdministradorActionForm();
        administradorActionForm = (AdministradorActionForm) form;
        BeanReporteCalificaciones beanReporteCalificaciones = new BeanReporteCalificaciones();
        beanReporteCalificaciones.setIdSociedad(administradorActionForm.getIdSociedad());
        beanReporteCalificaciones.setUnidadOrganizacional(administradorActionForm.getUnidadOrganizacional());
        beanReporteCalificaciones.setDivisionPersonal(administradorActionForm.getDivisionPersonal());
        beanReporteCalificaciones.setSubDivisionPersonal(administradorActionForm.getSubDivisionPersonal());
        beanReporteCalificaciones.setCentroCosto(administradorActionForm.getCentroCosto());
        beanReporteCalificaciones.setPeriodo(administradorActionForm.getPeriodo());
        
        
      //Cambio el valor para la busqueda con comodin
        String EvaluadorBackup=administradorActionForm.getEvaluador();
        String newEvaluador=administradorActionForm.getEvaluador();
        newEvaluador="*" + newEvaluador.replace(" ", "*") + "*";
        administradorActionForm.setEvaluador(newEvaluador.toUpperCase());
        System.out.println("evaluador: " + administradorActionForm.getEvaluador());
        
        
        String EvaluadoBackup=administradorActionForm.getEvaluado();
        String newEvaluado=administradorActionForm.getEvaluado();
        newEvaluado="*" + newEvaluado.replace(" ", "*") + "*";
        administradorActionForm.setEvaluado(newEvaluado.toUpperCase());
        System.out.println("evaluado: " + administradorActionForm.getEvaluado());
        
        //FIN
        
        beanReporteCalificaciones.setEvaluador(administradorActionForm.getEvaluador());
        beanReporteCalificaciones.setEvaluado(administradorActionForm.getEvaluado());
//        Alex
        beanReporteCalificaciones.setIdTipoPuesto(administradorActionForm.getIdTipoPuesto());
        System.out.println(administradorActionForm.getIdTipoPuesto());
//        Fin alex
        //Data del Reporte
        List<BeanReporte> lstReportes = new ArrayList<BeanReporte>();
        lstReportes = administradorService.getReporteStatus(beanReporteCalificaciones);
        //Fin de la data del Reporte
        
      //Regresando a como el usuario digito
        administradorActionForm.setEvaluador(EvaluadorBackup);
        administradorActionForm.setEvaluado(EvaluadoBackup);
        
        //Muestro la lista de sociedades despues de cargar la busqueda
        List<BeanSociedad> lstSociedades = new ArrayList<BeanSociedad>();
        lstSociedades = administradorService.getSociedades();
        request.setAttribute("lstSociedades", lstSociedades);

        //Muestro la lista de Centro de Costos despues de cargar la busqueda
        List<BeanCentroCosto> lstCentroCostos = new ArrayList<BeanCentroCosto>();
        lstCentroCostos = administradorService.getCentroCostos();
        request.setAttribute("lstCentroCostos", lstCentroCostos);

        //Muestro la lista de Periodos despues de cargar la busqueda
        List<BeanPeriodoReporte> lstPeriodos = new ArrayList<BeanPeriodoReporte>();
        lstPeriodos = administradorService.getPeriodos();
        request.setAttribute("lstPeriodos", lstPeriodos);

        //Muestro la lista de Evaluadores despues de cargar la busqueda
        List<BeanEvaluador> lstEvaluadores = new ArrayList<BeanEvaluador>();
//        lstEvaluadores = administradorService.getEvaluadores(beanReporteCalificaciones.getPeriodo());
//        request.setAttribute("lstEvaluadores", lstEvaluadores);

        //Muestro la lista de Evaluados despues de cargar la busqueda
        List<BeanEvaluado> lstEvaluados = new ArrayList<BeanEvaluado>();
//        lstEvaluados = administradorService.getEvaluados(beanReporteCalificaciones.getPeriodo());
//        request.setAttribute("lstEvaluados", lstEvaluados);

//      alex
        //MuestroTipoPuesto
        	List<BeanTipoPuesto> lstTipoPuesto = new ArrayList<BeanTipoPuesto>();
        	lstTipoPuesto = administradorService.getTipoPuesto();
        	request.setAttribute("lstTipoPuesto", lstTipoPuesto);
//        Fin alex
        	
        request.setAttribute("idSociedad", beanReporteCalificaciones.getIdSociedad());
        request.setAttribute("idUnidadOrganizativa", beanReporteCalificaciones.getUnidadOrganizacional());
        request.setAttribute("idDivisionPersonal", beanReporteCalificaciones.getDivisionPersonal());
        request.setAttribute("idSubDivisionPersonal", beanReporteCalificaciones.getSubDivisionPersonal());
        request.setAttribute("idPeriodo", beanReporteCalificaciones.getPeriodo());
        request.setAttribute("idEvaluador", beanReporteCalificaciones.getEvaluador());
        request.setAttribute("idEvaluado", beanReporteCalificaciones.getEvaluado());

        request.setAttribute("buscado", true);
        request.setAttribute("lstReportes", lstReportes);
        request.setAttribute("presionoBuscar", 1);
        return mapping.findForward("reporteStatus");
    }
//
    //muestra el resultado de la busqueda para el reporte de Calificaciones
    public ActionForward buscarRegistroCalificacion(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        if (Util.isSessionActiva(request)) {
            return mapping.findForward(Constantes.LOGIN);
        }
        
        AdministradorActionForm administradorActionForm = new AdministradorActionForm();
        administradorActionForm = (AdministradorActionForm) form;
        BeanReporteCalificaciones beanReporteCalificaciones = new BeanReporteCalificaciones();
        beanReporteCalificaciones.setIdSociedad(administradorActionForm.getIdSociedad());
        beanReporteCalificaciones.setUnidadOrganizacional(administradorActionForm.getUnidadOrganizacional());
        beanReporteCalificaciones.setDivisionPersonal(administradorActionForm.getDivisionPersonal());
        beanReporteCalificaciones.setSubDivisionPersonal(administradorActionForm.getSubDivisionPersonal());
        beanReporteCalificaciones.setCentroCosto(administradorActionForm.getCentroCosto());
        beanReporteCalificaciones.setPeriodo(administradorActionForm.getPeriodo());
        
        //Cambio el valor para la busqueda con comodin
        String EvaluadorBackup=administradorActionForm.getEvaluador();
        String newEvaluador=administradorActionForm.getEvaluador();
        newEvaluador="*" + newEvaluador.replace(" ", "*") + "*";
        administradorActionForm.setEvaluador(newEvaluador.toUpperCase());
        System.out.println("evaluador: " + administradorActionForm.getEvaluador());
        
        
        String EvaluadoBackup=administradorActionForm.getEvaluado();
        String newEvaluado=administradorActionForm.getEvaluado();
        newEvaluado="*" + newEvaluado.replace(" ", "*") + "*";
        administradorActionForm.setEvaluado(newEvaluado.toUpperCase());
        System.out.println("evaluado: " + administradorActionForm.getEvaluado());
        
        //FIN
        
        beanReporteCalificaciones.setEvaluador(administradorActionForm.getEvaluador());
        beanReporteCalificaciones.setEvaluado(administradorActionForm.getEvaluado());
        
//      Alex
        beanReporteCalificaciones.setIdTipoPuesto(administradorActionForm.getIdTipoPuesto());
        System.out.println(administradorActionForm.getIdTipoPuesto());
//      Fin alex
        
        List<BeanReporte> lstReportes = new ArrayList<BeanReporte>();
        lstReportes = administradorService.getReporteCalificacion(beanReporteCalificaciones);

        //Regresando a como el usuario digito
        administradorActionForm.setEvaluador(EvaluadorBackup);
        administradorActionForm.setEvaluado(EvaluadoBackup);
        
        
        //Muestro la lista de sociedades despues de cargar la busqueda
        List<BeanSociedad> lstSociedades = new ArrayList<BeanSociedad>();
        lstSociedades = administradorService.getSociedades();
        request.setAttribute("lstSociedades", lstSociedades);

        //Muestro la lista de Centro de Costos despues de cargar la busqueda
        List<BeanCentroCosto> lstCentroCostos = new ArrayList<BeanCentroCosto>();
        lstCentroCostos = administradorService.getCentroCostos();
        request.setAttribute("lstCentroCostos", lstCentroCostos);

        //Muestro la lista de Periodos despues de cargar la busqueda
        List<BeanPeriodoReporte> lstPeriodos = new ArrayList<BeanPeriodoReporte>();
        lstPeriodos = administradorService.getPeriodos();
        request.setAttribute("lstPeriodos", lstPeriodos);

        //Muestro la lista de Evaluadores despues de cargar la busqueda
        List<BeanEvaluador> lstEvaluadores = new ArrayList<BeanEvaluador>();
//        lstEvaluadores = administradorService.getEvaluadores(beanReporteCalificaciones.getPeriodo());
//        request.setAttribute("lstEvaluadores", lstEvaluadores);

        //Muestro la lista de Evaluados despues de cargar la busqueda
        List<BeanEvaluado> lstEvaluados = new ArrayList<BeanEvaluado>();
//        lstEvaluados = administradorService.getEvaluados(beanReporteCalificaciones.getPeriodo());
//        request.setAttribute("lstEvaluados", lstEvaluados);

//      alex
        //MuestroTipoPuesto
        	List<BeanTipoPuesto> lstTipoPuesto = new ArrayList<BeanTipoPuesto>();
        	lstTipoPuesto = administradorService.getTipoPuesto();
        	request.setAttribute("lstTipoPuesto", lstTipoPuesto);
//        Fin alex
        	
        request.setAttribute("buscado", true);
        request.setAttribute("idSociedad", beanReporteCalificaciones.getIdSociedad());
        request.setAttribute("idUnidadOrganizativa", beanReporteCalificaciones.getUnidadOrganizacional());
        request.setAttribute("idDivisionPersonal", beanReporteCalificaciones.getDivisionPersonal());
        request.setAttribute("idSubDivisionPersonal", beanReporteCalificaciones.getSubDivisionPersonal());
        request.setAttribute("idPeriodo", beanReporteCalificaciones.getPeriodo());
        request.setAttribute("idEvaluador", beanReporteCalificaciones.getEvaluador());
        request.setAttribute("idEvaluado", beanReporteCalificaciones.getEvaluado());
        request.setAttribute("lstReportes", lstReportes);
        request.setAttribute("presionoBuscar", 1);
        return mapping.findForward("reporteCalificaciones");
    }

    public ActionForward cargarUnidadOrganizativa(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        List<BeanUnidadOrganizativa> lstUnidadorganizativa = new ArrayList<BeanUnidadOrganizativa>();
        lstUnidadorganizativa = administradorService.getUnidadOrganizativa();

        JSONObject jsonObject = null;
        JSONArray jsonArray = new JSONArray();
        for(BeanUnidadOrganizativa beanUnidadOrganizativa: lstUnidadorganizativa){
            jsonObject = new JSONObject();
            jsonObject.put("id", beanUnidadOrganizativa.getIdUnidadOrganizativa());
            jsonObject.put("descripcion", beanUnidadOrganizativa.getDescripcion());
            jsonArray.add(jsonObject);
        }

        jsonObject = new JSONObject();
        jsonObject.put("resultado", jsonArray);

        response.setHeader("X-JSON", jsonObject.toString());
        jsonObject.write(response.getWriter());
        return null;
    }

    public ActionForward cargarDivisionPersonal(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        String idSociedad = request.getParameter("idSociedad");
        List<BeanDivisionPersonal> lstDivisionPersonal = new ArrayList<BeanDivisionPersonal>();
        lstDivisionPersonal = administradorService.getDivisionPersonal(idSociedad);

        JSONObject jsonObject = null;
        JSONArray jsonArray = new JSONArray();
        for(BeanDivisionPersonal beanDivisionPersonal: lstDivisionPersonal){
            jsonObject = new JSONObject();
            jsonObject.put("id", beanDivisionPersonal.getIdDivisionPersonal());
            jsonObject.put("descripcion", beanDivisionPersonal.getDescripcion());
            jsonArray.add(jsonObject);
        }

        jsonObject = new JSONObject();
        jsonObject.put("resultado", jsonArray);

        response.setHeader("X-JSON", jsonObject.toString());
        jsonObject.write(response.getWriter());
        return null;
    }

    public ActionForward cargarSubDivisionPersonal(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        String idDivisionPersonal = request.getParameter("idDivisionPersonal");
        List<BeanSubDivisionPersonal> lstSubDivisionPersonal = new ArrayList<BeanSubDivisionPersonal>();
        lstSubDivisionPersonal = administradorService.getSubDivisionPersonal(idDivisionPersonal);

        JSONObject jsonObject = null;
        JSONArray jsonArray = new JSONArray();
        for(BeanSubDivisionPersonal beanSubDivisionPersonal: lstSubDivisionPersonal){
            jsonObject = new JSONObject();
            jsonObject.put("id", beanSubDivisionPersonal.getIdSubDivisionPersonal());
            jsonObject.put("descripcion", beanSubDivisionPersonal.getDescripcion());
            jsonArray.add(jsonObject);
        }

        jsonObject = new JSONObject();
        jsonObject.put("resultado", jsonArray);

        response.setHeader("X-JSON", jsonObject.toString());
        jsonObject.write(response.getWriter());
        return null;
    }

    public ActionForward cargarEvaluadores(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        String periodo = request.getParameter("periodo");
        List<BeanEvaluador> lstEvaluador = new ArrayList<BeanEvaluador>();
        lstEvaluador = administradorService.getEvaluadores(periodo);

        if (lstEvaluador.size()>0) {
			System.out.println("Hay data");
		}
        JSONObject jsonObject = null;
        JSONArray jsonArray = new JSONArray();
        for(BeanEvaluador beanEvaluador: lstEvaluador){
            jsonObject = new JSONObject();
            jsonObject.put("id", beanEvaluador.getIdEvaluador());
            jsonObject.put("descripcion", beanEvaluador.getNombreEvaluador());
            jsonArray.add(jsonObject);
        }

        jsonObject = new JSONObject();
        jsonObject.put("resultado", jsonArray);

        response.setHeader("X-JSON", jsonObject.toString());
        jsonObject.write(response.getWriter());
        return null;
    }

    public ActionForward cargarEvaluados(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

    	
        String periodo = request.getParameter("periodo");
        List<BeanEvaluado> lstEvaluado = new ArrayList<BeanEvaluado>();
        lstEvaluado = administradorService.getEvaluados(periodo);

        JSONObject jsonObject = null;
        JSONArray jsonArray = new JSONArray();
        for(BeanEvaluado beanEvaluado: lstEvaluado){
            jsonObject = new JSONObject();
            jsonObject.put("id", beanEvaluado.getIdEmpleado());
            jsonObject.put("descripcion", beanEvaluado.getNombreEmpleado());
            jsonArray.add(jsonObject);
        }

        jsonObject = new JSONObject();
        jsonObject.put("resultado", jsonArray);

        response.setHeader("X-JSON", jsonObject.toString());
        jsonObject.write(response.getWriter());
        return null;
    }

    public ActionForward Excel(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
    	
    	ExcelCreator excelCreator = new ExcelCreator();
    	
    	HttpSession session = request.getSession();
        List<BeanReporte> lstReportes = (List<BeanReporte>)session.getAttribute("lstReporteStatus");
        
        try {
        	HSSFWorkbook workbook = excelCreator.createWorkbook(lstReportes);
        	response.setHeader("Content-Disposition", "attachment; filename=ReporteStatus.xls");
            ServletOutputStream out = response.getOutputStream();
            workbook.write(out);
            out.flush();
            out.close();
		} catch (Exception e) {
			// TODO: handle exception
		}
    	
        return mapping.findForward("reporteStatus");
     
    }
    
 public ActionForward ExcelCalificaciones(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
    	
    	ExcelCalificaciones excelCalificaciones = new ExcelCalificaciones();
    	
    	HttpSession session = request.getSession();
        List<BeanReporte> lstReportes = (List<BeanReporte>)session.getAttribute("lstReporteCalificaciones");
        
        
    	HSSFWorkbook workbook = excelCalificaciones.createWorkbook(lstReportes);
    	response.setHeader("Content-Disposition", "attachment; filename=ReporteCalificaciones.xls");
        ServletOutputStream out = response.getOutputStream();
        workbook.write(out);
        out.flush();
        out.close();
        return mapping.findForward("reporteCalificaciones");
     
    }

 public ActionForward cargarTipoPuesto(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

     List<BeanTipoPuesto> lstTipoPuesto = new ArrayList<BeanTipoPuesto>();
     lstTipoPuesto = administradorService.getTipoPuesto();

     JSONObject jsonObject = null;
     JSONArray jsonArray = new JSONArray();
     for(BeanTipoPuesto beanTipoPuesto: lstTipoPuesto){
         jsonObject = new JSONObject();
         jsonObject.put("id", beanTipoPuesto.getIdPuesto());
         jsonObject.put("descripcion", beanTipoPuesto.getNombrePuesto());
         jsonArray.add(jsonObject);
     }

     jsonObject = new JSONObject();
     jsonObject.put("resultado", jsonArray);

     response.setHeader("X-JSON", jsonObject.toString());
     jsonObject.write(response.getWriter());
     return null;
 }

}